#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <assert.h>
using namespace std;

void handler(int sig)
{
    cout << "捕获signal:" << sig << endl;
}

void Print(const sigset_t& set)
{
    for(int i = 1; i <= 31; ++i)
    {
        if(sigismember(&set, i) == 1)
            cout << 1;
        else    
            cout << 0;
    }
    cout << endl;  
}

int main()
{
    for(int i = 1; i <= 31; ++i)
    {
        signal(i, handler);
    }
    sigset_t set;
    sigfillset(&set);
    

    sigprocmask(SIG_SETMASK, &set, nullptr);

    while(true)
    {
        sigset_t oset;
        sigemptyset(&oset);
        sigpending(&oset);
        Print(oset);
        sleep(1);
    }

    return 0;
}